{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "48a60011",
   "metadata": {},
   "source": [
    "## SETUP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3a087ba2",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install dezerogym"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "28497f4e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# utility functions (common functions)\n",
    "def argmax(xs):\n",
    "    idxes = [i for i, x in enumerate(xs) if x == max(xs)]\n",
    "    if len(idxes) == 1:\n",
    "        return idxes[0]\n",
    "    elif len(idxes) == 0:\n",
    "        return np.random.choice(len(xs))\n",
    "    selected = np.random.choice(idxes)\n",
    "    return selected\n",
    "\n",
    "def greedy_probs(Q, state, epsilon=0, action_size=4):\n",
    "    qs = [Q[(state, action)] for action in range(action_size)]\n",
    "    max_action = argmax(qs)  # OR np.argmax(qs)\n",
    "    base_prob = epsilon / action_size\n",
    "    action_probs = {action: base_prob for action in range(action_size)}  #{0: ε/4, 1: ε/4, 2: ε/4, 3: ε/4}\n",
    "    action_probs[max_action] += (1 - epsilon)\n",
    "    return action_probs"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b06918a4",
   "metadata": {},
   "source": [
    "## ch06/td_eval.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d8a59538",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from collections import defaultdict\n",
    "import numpy as np\n",
    "from dezerogym.gridworld import GridWorld\n",
    "\n",
    "\n",
    "class TdAgent:\n",
    "    def __init__(self):\n",
    "        self.gamma = 0.9\n",
    "        self.alpha = 0.01\n",
    "        self.action_size = 4\n",
    "\n",
    "        random_actions = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25}\n",
    "        self.pi = defaultdict(lambda: random_actions)\n",
    "        self.V = defaultdict(lambda: 0)\n",
    "\n",
    "    def get_action(self, state):\n",
    "        action_probs = self.pi[state]\n",
    "        actions = list(action_probs.keys())\n",
    "        probs = list(action_probs.values())\n",
    "        return np.random.choice(actions, p=probs)\n",
    "\n",
    "    def eval(self, state, reward, next_state, done):\n",
    "        next_V = 0 if done else self.V[next_state]\n",
    "        target = reward + self.gamma * next_V\n",
    "        self.V[state] += (target - self.V[state]) * self.alpha\n",
    "\n",
    "\n",
    "env = GridWorld()\n",
    "agent = TdAgent()\n",
    "\n",
    "episodes = 1000\n",
    "for episode in range(episodes):\n",
    "    state = env.reset()\n",
    "\n",
    "    while True:\n",
    "        action = agent.get_action(state)\n",
    "        next_state, reward, done = env.step(action)\n",
    "\n",
    "        agent.eval(state, reward, next_state, done)\n",
    "        if done:\n",
    "            break\n",
    "        state = next_state\n",
    "\n",
    "env.render_v(agent.V)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13b103c5",
   "metadata": {},
   "source": [
    "## ch06/sarsa.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "94f50449",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADrCAYAAABXYUzjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAANTUlEQVR4nO3bf0yV9d/H8dd1g0uULT19JYqTNxJlCdFRsTz8UfCHuUlgWjPlD3812FpbW8XWbNlfrrLENhqOtdlAa0xqEwWzf0xXuDUnjJyskCJIkFzQoGFwO/G6//jecX/RoyBc+obrPB9bGxw+5zpvPn323NnF0XFdVwCAO++/rAcAgGhFgAHACAEGACMEGACMEGAAMEKAAcBI7K0snjNnjpuamnq7Zokqly5d0uzZs63H8A3201vsp7caGhp6XNedd+3jtxTge++9V6dPn/Zuqih24sQJZWdnW4/hG+ynt9hPbzmO0xHpcW5BAIARAgwARggwABghwABghAADgBECDABGCDAAGCHAAGCEAAOAEQIMAEYIMAAYIcAAYIQAA4ARAgwARggwABghwABghAADgBECDABGCDAAGCHAAGCEAAOAEQIMAEYIMAAYIcAAYIQAA4ARAgwARggwABghwABgJGoDfObMGbW1tVmP4Rvsp7fYz+gQtQEeGhrSc889xyH3CPvpLfYzOsRaD3AnfPbZZ3r//feve7y7u1vr16/XqVOnDKaavthPb7GfUcx13XH/9/DDD7t+0dHR4T7++ONufX29yesfP37c5HVvF/bTW+ynv0g67UZoalS8A46kpaVFe/bsUVZWlvUovsB+eov9jA5RG+AVK1ZYj+Ar7Ke32M/oELV/hAMAawQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAExITE6NQKKT09HTl5eWpr68v4rqtW7cqISFB6enpN7yW67p69dVXlZqaqoyMDDU2NkZcNzg4qKefflrDw8OSpNbWVj377LN68MEHtXTpUuXk5Ojbb78dWV9TU6OMjAw9+uijeuyxx1RTUzPqej09PZoxY4bKy8tHPZ6cnKyenp5Rj9XV1emdd9654e8wEQQYwITExcWpqalJZ8+eVSAQUFlZWcR1mzdv1tdff33Tax09elStra1qbW3VJ598opdffjniuk8//VRr165VTEyMhoaGlJubq6KiIv3yyy9qaGjQxx9/rLa2NknSDz/8oOLiYh06dEg//vijDh8+rOLiYp05c2bkel988YWWL1+uqqqqMX/f3Nxc1dbW6u+//x5z7XgRYACTFg6H1dXVFfFnTz31lAKBwE2ff+jQIW3cuFGO42j58uXq6+tTd3f3des+//xzrV69euTrcDis/Pz8kZ+np6dr8+bNkqRdu3bprbfe0oIFCyRJCxYs0LZt2/Thhx+OrK+qqlJJSYm6urrU2dl50xkdx1F2drbq6upuuu5WEGAAkzI8PKxjx46NCuGt6urq0gMPPDDyfTAYvC7oly9fVltbm5KTkyVJzc3NWrJkyQ2v2dzcrKVLl456LDMzU83NzZKk8+fPq7u7W0888YTWrVunAwcOjDlnZmamvvvuu/H+WmMiwAAmZHBwUKFQSImJibp48aJWrFhxW1+vp6dHc+bMueHP16xZo/T0dK1du3Zc1ztw4IDWrVsnSVq/fv24bkMkJCTowoUL47r+eBBgABPyzz3gjo4Oua57w3vA45GUlKTz58+PfN/Z2amkpKTrXm9oaGjk+7S0tFF/rDt48KAqKir0559/SpIWLVqkhoaGUddoaGhQWlqapH/ffqioqFBycrLy8/N15swZtba23nTOoaEhxcXFTeyXjIAAA5iUWbNmqbS0VCUlJbpy5cqErpGfn699+/bJdV19//33uvvuu3XfffeNWjN37lwNDw+PRLigoEAnT57U4cOHR9b85x/IiouL9d5776m9vV2S1N7ernfffVdvvPGGzp07p4GBAXV1dam9vV3t7e3atm3bmO+Cz507d9NPc9wqAgxg0hYvXqyMjIyIAduwYYPC4bBaWloUDAa1d+9eSVJ5efnIx79WrVqllJQUpaamqrCwUHv27In4Os8884zq6+sl/fsdcV1dncrLy5WSkqJwOKwdO3bo7bffliSFQiHt3LlTeXl5euSRR5SXl6cPPvhAoVBIVVVVWrNmzahrP//886Pmz8jIUDAYVDAY1Ouvvy5JOn78uHJzcye5W//PcV133IsXLlzotrS0ePbi0ezEiRPKzs62HsM32E9vTdX9bGxs1EcffaT9+/ff8de+ePGiCgoKdOzYsVt+ruM4Da7rZl77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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from collections import deque\n",
    "\n",
    "\n",
    "class SarsaAgent:\n",
    "    def __init__(self):\n",
    "        self.gamma = 0.9\n",
    "        self.alpha = 0.8\n",
    "        self.epsilon = 0.1\n",
    "        self.action_size = 4\n",
    "\n",
    "        random_actions = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25}\n",
    "        self.pi = defaultdict(lambda: random_actions)\n",
    "        self.Q = defaultdict(lambda: 0)\n",
    "        self.memory = deque(maxlen=2)\n",
    "\n",
    "    def get_action(self, state):\n",
    "        action_probs = self.pi[state]\n",
    "        actions = list(action_probs.keys())\n",
    "        probs = list(action_probs.values())\n",
    "        return np.random.choice(actions, p=probs)\n",
    "\n",
    "    def reset(self):\n",
    "        self.memory.clear()\n",
    "\n",
    "    def update(self, state, action, reward, done):\n",
    "        self.memory.append((state, action, reward, done))\n",
    "        if len(self.memory) < 2:\n",
    "            return\n",
    "\n",
    "        state, action, reward, done = self.memory[0]\n",
    "        next_state, next_action, _, _ = self.memory[1]\n",
    "        next_q = 0 if done else self.Q[next_state, next_action]\n",
    "\n",
    "        target = reward + self.gamma * next_q\n",
    "        self.Q[state, action] += (target - self.Q[state, action]) * self.alpha\n",
    "        self.pi[state] = greedy_probs(self.Q, state, self.epsilon)\n",
    "\n",
    "\n",
    "env = GridWorld()\n",
    "agent = SarsaAgent()\n",
    "\n",
    "episodes = 10000\n",
    "for episode in range(episodes):\n",
    "    state = env.reset()\n",
    "    agent.reset()\n",
    "\n",
    "    while True:\n",
    "        action = agent.get_action(state)\n",
    "        next_state, reward, done = env.step(action)\n",
    "\n",
    "        agent.update(state, action, reward, done)\n",
    "\n",
    "        if done:\n",
    "            agent.update(next_state, None, None, None)\n",
    "            break\n",
    "        state = next_state\n",
    "\n",
    "env.render_q(agent.Q)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7dc6d34e",
   "metadata": {},
   "source": [
    "## ch06/sarsa_off_policy.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6761dcd4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADrCAYAAABXYUzjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAANr0lEQVR4nO3bf0zV9R7H8de54BJ1S09XNDl51ShLiI6K5WGr4A9zk8C0Zsof/hxura2tYmu27C9XmqKbTcfabKg1prUJglJ/mKxwNScMnSyRIkiQWNigYZITv/ePe+Ne9PBD+MIbvuf52Nw453zO97zPx++eO/ty8DmOIwDAyPuH9QAAEKkIMAAYIcAAYIQAA4ARAgwARggwABiJvpfFkydPduLj44drlohy/fp1TZw40XoMz2A/3cV+uquioqLVcZypd95/TwGeNm2azp07595UEaysrEypqanWY3gG++ku9tNdPp+vIdz9XIIAACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcBIxAb4woULqqursx7DM9hPd7GfkSFiA9zZ2akXX3yRk9wl7Ke72M/IEG09wEj49NNPtX379rvub25u1urVq3X27FmDqcYu9tNd7GcEcxxnwP8effRRxysaGhqcJ5980ikvLzd5/dOnT5u87nBhP93FfnqLpHNOmKZGxCfgcGpqarR//36lpKRYj+IJ7Ke72M/IELEBXrJkifUInsJ+uov9jAwR+0s4ALBGgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBjAoUVFRCgaDSkxMVEZGhtra2sKu27hxo2JjY5WYmNjrsRzH0euvv674+HglJSWpsrIy7LobN27oueeeU1dXlySptrZWL7zwgh5++GEtXLhQaWlp+uabb7rXFxYWKikpSY8//rieeOIJFRYW9jhea2urxo0bp7y8vB73z5o1S62trT3uKykp0XvvvdfrexgMAgxgUGJiYlRVVaWLFy/K7/dr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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class SarsaOffPolicyAgent:\n",
    "    def __init__(self):\n",
    "        self.gamma = 0.9\n",
    "        self.alpha = 0.8\n",
    "        self.epsilon = 0.1\n",
    "        self.action_size = 4\n",
    "\n",
    "        random_actions = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25}\n",
    "        self.pi = defaultdict(lambda: random_actions)\n",
    "        self.b = defaultdict(lambda: random_actions)\n",
    "        self.Q = defaultdict(lambda: 0)\n",
    "        self.memory = deque(maxlen=2)\n",
    "\n",
    "    def get_action(self, state):\n",
    "        action_probs = self.b[state]\n",
    "        actions = list(action_probs.keys())\n",
    "        probs = list(action_probs.values())\n",
    "        return np.random.choice(actions, p=probs)\n",
    "\n",
    "    def reset(self):\n",
    "        self.memory.clear()\n",
    "\n",
    "    def update(self, state, action, reward, done):\n",
    "        self.memory.append((state, action, reward, done))\n",
    "        if len(self.memory) < 2:\n",
    "            return\n",
    "\n",
    "        state, action, reward, done = self.memory[0]\n",
    "        next_state, next_action, _, _ = self.memory[1]\n",
    "\n",
    "        if done:\n",
    "            next_q = 0\n",
    "            rho = 1\n",
    "        else:\n",
    "            next_q = self.Q[next_state, next_action]\n",
    "            rho = self.pi[next_state][next_action] / self.b[next_state][next_action]\n",
    "\n",
    "        target = rho * (reward + self.gamma * next_q)\n",
    "        self.Q[state, action] += (target - self.Q[state, action]) * self.alpha\n",
    "\n",
    "        self.pi[state] = greedy_probs(self.Q, state, 0)\n",
    "        self.b[state] = greedy_probs(self.Q, state, self.epsilon)\n",
    "\n",
    "\n",
    "env = GridWorld()\n",
    "agent = SarsaOffPolicyAgent()\n",
    "\n",
    "episodes = 10000\n",
    "for episode in range(episodes):\n",
    "    state = env.reset()\n",
    "    agent.reset()\n",
    "\n",
    "    while True:\n",
    "        action = agent.get_action(state)\n",
    "        next_state, reward, done = env.step(action)\n",
    "\n",
    "        agent.update(state, action, reward, done)\n",
    "\n",
    "        if done:\n",
    "            agent.update(next_state, None, None, None)\n",
    "            break\n",
    "        state = next_state\n",
    "\n",
    "env.render_q(agent.Q)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ab15683",
   "metadata": {},
   "source": [
    "## ch06/q_learning.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "985a90d2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADrCAYAAABXYUzjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAANmElEQVR4nO3bf0xW9d/H8de5xSXKFl59JcorbyXKEqJLxRLaCv4gNwn8UTNlzl9Nt9bWVrE1W/aXKy3RjQZjbTb80ZjUJv7K/jFd4dacMGKyQopAQWJBg4bB7cRz//G94/6il/LrwBsOz8fWBofPda43n86eOztcOq7rCgAw9v7LegAAmKwIMAAYIcAAYIQAA4ARAgwARggwABiJGMri6OhoNz4+frRmmVSuX7+uGTNmWI/hG+ynt9hPb1VUVLS5rjvr9uNDCvCDDz6oixcvejfVJHbu3DmlpaVZj+Eb7Ke32E9vOY7TGO44jyAAwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADAyaQNcXV2t+vp66zF8g/30Fvs5OUzaAPf09GjlypVc5B5hP73Ffk4OEdYDjIXDhw9r165ddxxvaWnR2rVrdeHCBYOpJi7201vs5yTmuu6g/3v88cddv2hsbHSffvppt7y83OT9z549a/K+o4X99Bb76S+SLrphmjop7oDDqa2tVWFhoVJTU61H8QX201vs5+QwaQOckZFhPYKvsJ/eYj8nh0n7RzgAsEaAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGMCxTpkxRKBRSYmKisrKy1NHREXbdli1bFBMTo8TExLuey3Vdvfnmm4qPj1dSUpIqKyvDruvu7tYLL7yg3t5eSVJdXZ1eeuklPfroo1q8eLHS09P13Xff9a0vKytTUlKSnnzyST311FMqKyvrd762tjZNnTpVRUVF/Y7PnTtXbW1t/Y6dPHlSH3zwwV1/h+EgwACGJTIyUlVVVbp06ZICgYAKCgrCrtu0aZO++eabe57r9OnTqqurU11dnT777DO9/vrrYdd9/vnnWr16taZMmaKenh5lZmZq27Zt+vXXX1VRUaFPP/1U9fX1kqQff/xRubm5OnbsmH766ScdP35cubm5qq6u7jvfl19+qaVLl6qkpGTA3zczM1MnTpzQ33//PeDawSLAAEYsJSVFzc3NYX/2/PPPKxAI3PP1x44d04YNG+Q4jpYuXaqOjg61tLTcse6LL77QihUr+r5OSUlRdnZ2388TExO1adMmSdKePXv03nvvad68eZKkefPmafv27frkk0/61peUlCgvL0/Nzc1qamq654yO4ygtLU0nT56857qhIMAARqS3t1dnzpzpF8Kham5u1iOPPNL3fTAYvCPoN27cUH19vebOnStJqqmp0aJFi+56zpqaGi1evLjfseTkZNXU1EiSrl69qpaWFj3zzDNas2aNjhw5MuCcycnJ+v777wf7aw2IAAMYlu7uboVCIcXGxqq1tVUZGRmj+n5tbW2Kjo6+689XrVqlxMRErV69elDnO3LkiNasWSNJWrt27aAeQ8TExOjatWuDOv9gEGAAw/LPM+DGxka5rnvXZ8CDMXv2bF29erXv+6amJs2ePfuO9+vp6en7PiEhod8f644ePari4mL9+eefkqQFCxaooqKi3zkqKiqUkJAg6d+PH4qLizV37lxlZ2erurpadXV195yzp6dHkZGRw/slwyDAAEZk+vTpys/PV15enm7evDmsc2RnZ+vgwYNyXVc//PCD7r//fj300EP91sycOVO9vb19Ec7JydH58+d1/PjxvjX/+Qey3NxcffTRR2poaJAkNTQ06MMPP9Q777yjy5cvq6urS83NzWpoaFBDQ4O2b98+4F3w5cuX7/lpjqEiwABGbOHChUpKSgobsHXr1iklJUW1tbUKBoPav3+/JKmoqKjv41/Lly9XXFyc4uPjtXXrVhUWFoZ9nxdffFHl5eWS/n1HfPLkSRUVFSkuLk4pKSnauXOn3n//fUlSKBTS7t27lZWVpSeeeEJZWVn6+OOPFQqFVFJSolWrVvU798svv9xv/qSkJAWDQQWDQb399tuSpLNnzyozM3OEu/X/HNd1B714/vz5bm1trWdvPpmdO3dOaWlp1mP4BvvprfG6n5WVldq3b58OHTo05u/d2tqqnJwcnTlzZsivdRynwnXd5NuPcwcMYMJYtGiR0tPT+/4hxli6cuWK8vLyPD1nhKdnA4BRtmXLFpP3XbJkiefn5A4YAIwQYAAwQoABwMiAn4JwHGebpG2SNGvWrMWlpaVjMZfvtbe36/r169Zj+EYgEFBUVJT1GL7R1dXFfnooPT097Kcg+BiakYMHD+r8+fPWY/jGunXrxuXHpiaq8foxtImKj6EBwDhDgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIz4KsCdnZ2qrKy0HgMIi+vTW37YT98EuLOzU8uWLVNqaqpOnz5tPQ7QD9ent/yynxHWA3hl69atSk1NVSAQ0I4dO5SQkKA5c+ZYjwVI4vr0ml/20zd3wAcOHFBOTo5iYmJUXl4+If9nwL+4Pr3ll/30TYAjIyP7vp42bZrhJMCduD695Zf99E2AAWCiIcAAYIQAA4ARXwU4OTlZxcXF1mMAYXF9essP++mrAAPAREKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYwLBMmTJFoVBIiYmJysrKUkdHx4Cv+fnnn5WSkqL77rtPe/bsueu63377Tc8++6zi4+P16quv6saNGx5OPn4QYADDEhkZqaqqKl26dEmBQEAFBQUDviYQCCg/P1+5ubn3XPfuu+/qrbfe0i+//KKZM2dq//79Xo09rhBgACOWkpKi5ubmAdfFxMRoyZIlmjp16l3XuK6rb7/9Vq+88ookaePGjSorK/Nq1HGFAAMYkd7eXp05c0bZ2dmenK+9vV3R0dGKiIiQJAWDwUHFfSIiwACGpbu7W6FQSLGxsWptbVVGRob1SBMOAQYwLP88A25sbJTrumGfARcUFCgUCikUCunatWuDOu8DDzygjo4O3bx5U5LU1NSk2bNnezr7eEGAAYzI9OnTlZ+fr7y8vL5o/uONN95QVVWVqqqq9PDDDw/qfI7jKD09XV999ZUk6cCBA1qxYoXnc48HBBjAiC1cuFBJSUkqKSm557rff/9dwWBQe/fu1c6dOxUMBvXXX39JkpYvX953l7x7927t3btX8fHxam9v12uvvTbqv4OFCOsBAExMXV1d/b4/ceLEgK+JjY1VU1NT2J99/fXXfV/HxcXpwoULIxtwAuAOGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAw4riue+8FjrNN0jZJmjVr1uLS0tKxmMv3urq6FBUVZT2Gb7Cf3mI/vZWenl7hum7y7ccHDPB/mj9/vltbW+vpYJPVuXPnlJaWZj2Gb7Cf3mI/veU4TtgA8wgCAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHAiK8C3NnZqcrKSusxgLC4PnE73wS4s7NTy5YtU2pqqk6fPm09DtAP1yfCibAewCtbt25VamqqAoGAduzYoYSEBM2ZM8d6LEAS1yfC880d8IEDB5STk6OYmBiVl5dzcWNc4fpEOL4JcGRkZN/X06ZNM5wEuBPXJ8LxTYABYKIhwABghAADgBFfBTg5OVnFxcXWYwBhcX3idr4KMOxUV1ervr7eegz4wK1bt3TixAnrMcYEAYYnenp6tHLlSiKMEbl165Y2b96s8vJy61HGhG/+IQbGzuHDh7Vr1647jre0tGjt2rW6cOGCwVTwg6KiIh06dEgLFizQqVOn+v3sscce09GjR40mGx0EGEO2fv16rV+/vt+xK1euKDs7W/v27TOaCn6wYcMGlZaWavPmzdq4caP1OKOORxDwRG1trQoLC/Xcc89Zj4IJLCoqSqdOndIff/xhPcqY4A4YnsjIyLAeAT4xY8YM5ebmWo8xJrgDBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwAgBBgAjBBgAjBBgADBCgAHACAEGACMEGACMEGAAMEKAAcAIAQYAIwQYAIwQYAAwQoABwEjEQAscx9kmadv/ffs/juNcGt2RJo1/SWqzHsJH2E9vsZ/e+u9wBx3XdQd9BsdxLrqum+zZSJMYe+kt9tNb7OfY4BEEABghwABgZKgB/mxUppic2EtvsZ/eYj/HwJCeAQMAvMMjCAAwQoABwAgBBgAjBBgAjBBgADDyv3WeIW++ivgaAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class QLearningAgent:\n",
    "    def __init__(self):\n",
    "        self.gamma = 0.9\n",
    "        self.alpha = 0.8\n",
    "        self.epsilon = 0.1\n",
    "        self.action_size = 4\n",
    "\n",
    "        random_actions = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25}\n",
    "        self.pi = defaultdict(lambda: random_actions)\n",
    "        self.b = defaultdict(lambda: random_actions)\n",
    "        self.Q = defaultdict(lambda: 0)\n",
    "\n",
    "    def get_action(self, state):\n",
    "        action_probs = self.b[state]\n",
    "        actions = list(action_probs.keys())\n",
    "        probs = list(action_probs.values())\n",
    "        return np.random.choice(actions, p=probs)\n",
    "\n",
    "    def update(self, state, action, reward, next_state, done):\n",
    "        if done:\n",
    "            next_q_max = 0\n",
    "        else:\n",
    "            next_qs = [self.Q[next_state, a] for a in range(self.action_size)]\n",
    "            next_q_max = max(next_qs)\n",
    "\n",
    "        target = reward + self.gamma * next_q_max\n",
    "        self.Q[state, action] += (target - self.Q[state, action]) * self.alpha\n",
    "\n",
    "        self.pi[state] = greedy_probs(self.Q, state, epsilon=0)\n",
    "        self.b[state] = greedy_probs(self.Q, state, self.epsilon)\n",
    "\n",
    "\n",
    "env = GridWorld()\n",
    "agent = QLearningAgent()\n",
    "\n",
    "episodes = 10000\n",
    "for episode in range(episodes):\n",
    "    state = env.reset()\n",
    "\n",
    "    while True:\n",
    "        action = agent.get_action(state)\n",
    "        next_state, reward, done = env.step(action)\n",
    "\n",
    "        agent.update(state, action, reward, next_state, done)\n",
    "        if done:\n",
    "            break\n",
    "        state = next_state\n",
    "\n",
    "env.render_q(agent.Q)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bd8889f",
   "metadata": {},
   "source": [
    "## ch06/q_learning_simple.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "44dbc626",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class QLearningAgent:\n",
    "    def __init__(self):\n",
    "        self.gamma = 0.9\n",
    "        self.alpha = 0.8\n",
    "        self.epsilon = 0.1\n",
    "        self.action_size = 4\n",
    "        self.Q = defaultdict(lambda: 0)\n",
    "\n",
    "    def get_action(self, state):\n",
    "        if np.random.rand() < self.epsilon:\n",
    "            return np.random.choice(self.action_size)\n",
    "        else:\n",
    "            qs = [self.Q[state, a] for a in range(self.action_size)]\n",
    "            return np.argmax(qs)\n",
    "\n",
    "    def update(self, state, action, reward, next_state, done):\n",
    "        if done:\n",
    "            next_q_max = 0\n",
    "        else:\n",
    "            next_qs = [self.Q[next_state, a] for a in range(self.action_size)]\n",
    "            next_q_max = max(next_qs)\n",
    "\n",
    "        target = reward + self.gamma * next_q_max\n",
    "        self.Q[state, action] += (target - self.Q[state, action]) * self.alpha\n",
    "\n",
    "\n",
    "env = GridWorld()\n",
    "agent = QLearningAgent()\n",
    "\n",
    "episodes = 1000\n",
    "for episode in range(episodes):\n",
    "    state = env.reset()\n",
    "\n",
    "    while True:\n",
    "        action = agent.get_action(state)\n",
    "        next_state, reward, done = env.step(action)\n",
    "\n",
    "        agent.update(state, action, reward, next_state, done)\n",
    "        if done:\n",
    "            break\n",
    "        state = next_state\n",
    "\n",
    "env.render_q(agent.Q)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
